package edu.utn.tacs.grupouno.rest.api;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import edu.utn.tacs.grupouno.negocio.Analisis;
import edu.utn.tacs.grupouno.negocio.Estudio;
import edu.utn.tacs.grupouno.negocio.Medico;
import edu.utn.tacs.grupouno.negocio.Paciente;

public interface AnalisisService {

	@GET
	@Path("/{id}")
	@Produces("application/xml")
	public Analisis getAnalisis(@PathParam("id") String id);
	
	@GET
	@Path("")
	@Produces("application/xml")
	public List<Analisis> getAnalisis();
	
	@GET
	@Path("/{id}/paciente")
	@Produces("application/xml")
	public Paciente getPaciente(@PathParam("id") String id);
	
	@GET
	@Path("/{id}/medico")
	@Produces("application/xml")
	public Medico getMedico(@PathParam("id") String id);
	
	@PUT
	@Path("/{id}")
	@Produces("application/xml")
	public void putAnalisis(@PathParam("id") String id, Analisis analisis);
	
	@DELETE
	@Path("/{id}")
	public void deleteAnalisis(@PathParam("id") String id);
	
	@POST
	@Path("")
	@Consumes("application/xml")
	public void postAnalisis(Analisis analisis);
	
	@GET
	@Path("/{id}/estudios")
	@Produces("application/xml")
	public List<Estudio> getEstudios(@PathParam("id") String id);
	
	@POST
	@Path("/{id}/estudios")
	@Consumes("application/xml")
	public void postEstudio(@PathParam("id") String id, Estudio estudio);
	
	@DELETE
	@Path("/{id}/estudios")
	public void deleteEstudios(@PathParam("id") String id);
	
	@DELETE
	@Path("/{idAnalisis}/estudios/{idEstudio}")
	public void deleteEstudio(@PathParam("idAnalisis") String idAnalisis, @PathParam("idEstudio") String idEstudio);
}
